package com.legal.app.mapper;

import java.util.List;
import com.legal.app.domain.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.legal.common.core.domain.entity.SysUser;
import org.apache.ibatis.annotations.Param;

/**
 * @author Ale
 */
public interface UserMapper extends BaseMapper<User> {
    /**
     * 查询小程序用户
     * 
     * @param id 小程序用户主键
     * @return 小程序用户
     */
    public User selectUserById(Long id);

    /**
     * 查询小程序用户列表
     * 
     * @param user 小程序用户
     * @return 小程序用户集合
     */
    public List<User> selectUserList(User user);

    /**
     * 新增小程序用户
     * 
     * @param user 小程序用户
     * @return 结果
     */
    public int insertUser(User user);

    /**
     * 修改小程序用户
     * 
     * @param user 小程序用户
     * @return 结果
     */
    public int updateUser(User user);

    /**
     * 删除小程序用户
     * 
     * @param id 小程序用户主键
     * @return 结果
     */
    public int deleteUserById(Long id);

    /**
     * 批量删除小程序用户
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserByIds(Long[] ids);

    User selectByPhoneNumber(@Param("phoneNumber") String phoneNumber);

    User selectByWechatOpenid(String openId);

    //与普通用户同时插入系统用户
    public int insertSysUser(SysUser sysUser);

    User selectByOpenid(String openid);

    //注册时默认映射小程序用户角色
    public void insertSysUserRole(@Param("userId") Long userId, @Param("roleId") Long roleId);

    User selectUserByOpenid(String openid);

    SysUser selectSysUserByUsername(String username);
}
